package CapaDatos.listas;

import CapaDatos.Fecha;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.TreeSet;

public class ListaFechas
{
    private TreeSet <Fecha> fechas;
    private Comparator comparator;

    public ListaFechas()
    {
        comparator = new CompararFechas();
        fechas = new TreeSet(comparator);
    }

    public ListaFechas(List fechas) {
        this.comparator = new CompararFechas();
        this.fechas = new TreeSet(comparator);
        this.fechas.addAll(fechas);
    }

    public boolean agregar (String fecha) {
        Fecha laFecha = new Fecha(fecha);
        return fechas.add(laFecha);
    }

    public boolean agregar (Fecha fecha) {
        return fechas.add(fecha);
    }

    public boolean eliminar (String fecha) {
        Fecha laFecha = new Fecha(fecha);
        return fechas.remove(laFecha);
    }

    public boolean eliminar (Fecha fecha) {
        return fechas.remove(fecha);
    }

    public boolean existe (String fecha) {
        String auxiliar = null;

        Iterator iterator = fechas.iterator();

        while (iterator.hasNext())
        {
            auxiliar = (String) iterator.next();

            if (fecha.equals(auxiliar))
                return true;
        }

        return false;
    }

    public boolean existe (Fecha fecha) {
        Fecha auxiliar = null;

        Iterator iterator = fechas.iterator();

        while (iterator.hasNext())
        {
            auxiliar = (Fecha) iterator.next();

            if (fecha.equals(auxiliar))
                return true;
        }

        return false;
    }

    public Fecha[] array() {
        return fechas.toArray(new Fecha[0]);
    }
}
